// 引入配置
import { APP_BASE_URL } from '../config'
import store from '../store'
const requestInterceptors = (vm) => {
  /**
	 * 请求拦截
	 * @param {Object} http
	 */
  uni.$u.http.interceptors.request.use((config) => { 
    // 可使用async await 做异步操作
    // 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
    config.data = config.data || {}
    // 添加对应的请求头
    config.header['Authorization'] = 'Bearer ' + uni.getStorageSync('token')
    return config
  }, (config) => // 可使用async await 做异步操作
    Promise.reject(config))
}
const responseInterceptors = (vm) => {
  /**
	 * 响应拦截
	 * @param {Object} http 
	 */
  uni.$u.http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
    const res = response.data
    // 自定义参数
    // const custom = response.config?.custom
		
    if (res.code === 402) {
      store('user').setAuthType('smsLogin')
    }
    return res || {}
  }, (response) => { /*  对响应错误做点什么 （statusCode !== 200）*/
    return Promise.reject(response)
  })
}

//  初始化请求配置
const initRequest = (vm) => {
  uni.$u.http.setConfig((defaultConfig) => {
    /* defaultConfig 为默认全局配置 */
    defaultConfig.baseURL = APP_BASE_URL /* 根域名 */
    return defaultConfig
  })
  requestInterceptors()
  responseInterceptors()
}
export {
  initRequest
}

